package com.rj.ability.leqi.adapter.domain.aisino;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

/**
 * @author YFX_RANLUBO
 * @date 2024/04/30 15:42
 **/
@Data
public class AisinoQdhzqrdxz {
    /**
     * 列表序号	10	是
     */
    private Integer id;
    /**
     * 红字确认单编号	32	是
     */
    @JsonProperty("redLetterInfoFormNum")
    private String hzfpxxqrdbh;
    /**
     * 红字确认单uuid	32	否
     */
    @JsonProperty("applicationFormCode")
    private String uuid;
    /**
     * 填开日期	19	否	yyyy-MM-dd HH:mm:ss
     */
    @JsonProperty("fillInDate")
    private String lrrq;
    /**
     * 确认日期	19	否	yyyy-MM-dd HH:mm:ss
     */
    @JsonProperty("confirmationDate")
    private String qrrq;
    /**
     * 确认单状态代码	20	是
     * 该状态是经过接口处理过的，非乐企给的状态，主要用于快速判断确认单是否可以开票及是否已开票。
     * TZD0000：无需确认或购销双方
     * 已确认（该状态中包含了TZD1000的状态，TZD1000不单独返回。）
     * TZDZB02：销方录入待购方确认
     * TZDZB03：购方录入待销方确认
     * TZDZB07：作废（超72小时未确认）
     * TZDZB05：作废（销方录入购方否认）
     * TZDZB06：作废（购方录入销方否认）
     * TZDZB08：作废（发起方撤销）
     * TZDZB09：作废（确认后撤销）
     * TZDZB10：作废（异常凭证）
     * TZD1076：已核销（代表了该确认单已经被使用开红票）
     */
    private String statusCode;

    /**
     * 红字确认单状态代码	20	是	与statusCode字段差异为，该字段返回的是乐企端当前该确认单的状态码，接口层面未做其他加工处理。
     * 01：无需确认
     * 02：销方录入待购方确认
     * 03：购方录入待销方确认
     * 04：购销双方已确认
     * 05：作废（销方录入购方否认）
     * 06：作废（购方录入销方否认）
     * 07：作废（超72小时未确认）
     * 08：（发起方撤销）
     * 09：作废（确认后撤销）
     * 10：作废（异常凭证）
     */
    @JsonProperty("confirmationStatusCode")
    private String hzqrxxztDm;
    ;
    /**
     * 状态描述	100	是
     **/
    private String statusDescription;
    /**
     * 对应蓝票发票代码	12	是
     **/
    @JsonProperty("blueLetterInvoiceCode")
    private String lzfpdm;
    /**
     * 对应蓝票发票号码	20	是
     **/
    @JsonProperty("blueLetterInvoiceNo")
    private String lzfphm;
    /**
     * 蓝字发票开票日期	14	否 数字化电子发票格式：YYYY-MM-DD HH:MM:SS
     **/
    @JsonProperty("issueDate")
    private String lzkprq;
    /**
     * 01: 增值税专用发票02: 普通发票03: 机动车统一销售发票04: 二手车统一销售发票
     * aisino:
     * 蓝字发票票种代码	3	是
     * 081 数字化电子专票
     * 082 数字化电子普票
     **/
    @JsonProperty("invoiceTypeCode")
    private String lzfppzDm;
    /**
     * 蓝字发票合计金额	16,2	是
     **/
    @JsonProperty("bluetaxExclusiveTotalAmount")
    private String lzhjje;
    /**
     * 蓝字发票合计税额	16,2	是
     **/
    @JsonProperty("bluetaxTotalAmount")
    private String lzhjse;
    /**
     * 扣除额	16,2	否
     **/
    private String deduction;
    /**
     * 01：成品油发票02：稀土发票03：建筑服务发票04：货物运输服务发票05：不动产销售服务发票06：不动产租赁服务发票07：代收车船税08：通行费
     * 09：旅客运输服务发票10：医疗服务（住院）发票11：医疗服务（门诊）发票12：自产农产品销售发票13 拖拉机和联合收割机发票14：机动车
     * 15：二手车16：农产品收购发票17：光伏收购发票18：卷烟发票20：农产品
     * aisino:
     * 特定要素	2	是
     * 00”非特定要素
     * “01”稀土发票
     * “03”建筑服务
     * “04”货物运输服务发票
     * “08”成品油
     * “09”卷烟
     * “12”医疗服务（住院）发票
     * “13”医疗服务（门诊）发票
     * “14”自产农产品销售
     * “18”旅客运输服务
     * “32”电子烟
     **/
    @JsonProperty("specialInvoiceMark")
    private String lzfpTdyslxDm;
    /**
     * 购方名称	100	是
     **/
    @JsonProperty("buyerName")
    private String gmfmc;
    /**
     * 购方税号	20	是
     **/
    @JsonProperty("buyerTaxID")
    private String gmfnsrsbh;
    /**
     * 销方名称	100	是
     **/
    @JsonProperty("sellerName")
    private String xsfmc;
    /**
     * 销方税号	20	是
     **/
    @JsonProperty("sellerTaxID")
    private String xsfnsrsbh;
    /**
     * 合计金额	16,2	是
     **/
    @JsonProperty("taxExclusiveTotalAmount")
    private String hzcxje;
    /**
     * 合计税额	16,2	是
     **/
    @JsonProperty("taxTotalAmount")
    private String hzcxse;
    /**
     * 征税类型代码	1	是
     * 0：普通征税
     * 2：差额征税—差额开票
     * 3：差额征税—全额开票
     **/
    @JsonProperty("taxInclusivePriceMark")
    private String cezslxDm;
    /**
     * 冲红原因	2	否
     * 1-销货退回；
     * 2-开票有误；
     * 3-服务中止；
     * 4-销售折让
     **/
    @JsonProperty("reason")
    private String chyyDm;
    /**
     * 录入方身份	2	否
     * 0：销方
     * 1：购方
     * 仅用于乐企接口
     **/
    @JsonProperty("requestorIdentity")
    private String lrfsf;
    /**
     * 已开具红字发票标志	1	否
     * Y：已开具
     * N：未开具
     **/
    @JsonProperty("invoiceStatus")
    private String ykjhzfpbz;
    /**
     * 红字发票号码	20	否
     **/
    @JsonProperty("InvoiceNo")
    private String hzfphm;
    /**
     * 红字开票日期		否 YYYY-MM-DD HH:MM:SS
     **/
    @JsonProperty("invoiceDate")
    private String hzkprq;
    /**
     * 有效标志	1	否
     * Y：有效
     * N：无效
     **/
    @JsonProperty("validMark")
    private String yxbz;
    /**
     * 明细数据
     */
    private InvoiceProductList costItem;

    /**
     * 获取发票明细
     *
     * @return
     */
    public java.util.List<InvoiceProduct> group() {
        if (costItem != null) {
            return costItem.getGroup();
        }
        return null;
    }


}
